// 处理登录有关数据
module.exports = {
	_before: function () { // 通用预处理器

	},
	
	/**
	 * 发送手机验证码
	 * @param {string} tel 要发送的手机号码
	 * @returns {sting} 发送的随机验证码
	 */
	
	 async sendSms(tel,code) {
		// 参数校验，如无参数则不需要
		if (!tel) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		
		// 业务逻辑
		const res = await uniCloud.sendSms({
		      appid: '__UNI__8A62930',
		      phone: tel,
			  smsKey:'976dce0a3dadb0c58fa62dec0b79abe1',
			  smsSecret:'ec734e60644e2fb7df6f9133bca4c85d',
		      templateId: '18696', // 请替换为自己申请的模板id
		      data: {
		        code: code,
		        expMinute: '3',
		      }
		    })
		// 返回结果
		return {
			code:200,
			message:'发送成功',
			result:res
		}
	},
	/**
	 * 手机号一键登录获取用户手机号码
	 * @param {string} openid 一键登录openid
	 * @param {string} token 一键登录access_token
	 * @return {object} 包含手机号码的对象
	 */
	
	async getPhoneByToken(openid,token) {
		// 参数校验，如无参数则不需要
		if (!openid || !token) {
			return {
				errCode: 'openid or access_token is null',
				errMsg: 'openid或access_token为空'
			}
		}
		// 业务逻辑
		const res = await uniCloud.getPhoneNumber({
		    provider: 'univerify',
		    appid: '__UNI__FA8271D',
			apiKey:'b9f4ab83ae8c903e259ce649dd3755ca',
			apiSecret:'4104f51fbb00a962580d9b407276ee56',
		    access_token: token,
		    openid: openid
		  })
		// 返回结果
		return {
			res
		}
	},
	
	/**
	 * 根据传过来的手机号码登录或者注册
	 * @param {string} tel 手机号码
	 */
	async registerOrLogin(tel,systemInfo,deviceInfo){
		var db = uniCloud.database();
		const userinfo = await db.collection('uni-id-users').where({mobile:tel}).get();
		const index = parseInt(Math.random() * 20);
		if(index == 0){
			index = 1;
		}
		const avatar = 'https://mp-2298d5e4-aa54-4efc-a8b7-bbb75295a007.cdn.bspapp.com/ai-header/'+index+'.webp';
		const nickName=['吟唱一世浮华','流水浮三生','梧桐深院锁清秋','笔墨初心','君忆流年','梦年海沫深','夜幕篱下浅笙歌','伊人淡雅泪','浅梦丷墨汐',
				   '雨落倾城夜微凉','又闻清风','逝水流年轻染尘','江南春失忆梦','☆完美少年☆','▁倔强こ男孩う','手握风云☆','╰绝版好男人','ヅ不负卿','阳ˉ﹃ˉ光男孩','ず仟種煭酒',
				   '呆萌男神','灲袧漾ξω男人','奶嘴男°]','￡叫兽↘大叔彡','无敌宝宝男m.','冰嚸','男人、永卟言败','挽歌朽哖','木兰の少女心','温柔媚娘╰','尖叫女神ˇ','◆多情女λ',
				   '鸢栀','╰冰箱软妹贴','囚心女神','发光女神','变萌变淑女','花思花醉淚','丬仙女の許愿池','刀子嘴豆心','少女浅夏','悲伤浅笑','_Angel/`妃°','就此长大了╮',
				   '繁花落寂','唇上胭脂味','蝶蝶蝶蝶变','染指唇。','└素年碎碎念','钢铁男儿℃','远离尘埃。','苍笙踏歌','风尘','凉栀°','看淡别离','回忆还温暖。','ζ成全了舍得','南国猫觅海',
				   '栀夏微凉','霓裳晚歌','残翼の梦蝶','眉目成舟し','是梦终空-','夜雨微澜','醉闻晚风','弈剑のㄨ听雨阁','星星の泪光','旧巷念人','风清ゞの云淡ゞ','鸢语','清明雨揽月','青衿.','旧言.',
				   'Drunk(醉梦)','Demons（心魔）','Dear(挚爱)','Emptycity°','The star"星星','adorable°（萌）','Monody(挽歌)','deep love(深情)','离瑰ⅠThekhoi','Appoint（约定）','Perfect″—完美',
				   'Somnus、戒指','Lemon(柠檬)','Shine（光芒）','KRY┃ 控','霸刃魔牛','霸绝天地','爷ゝ本霸气っ','逐云之巅','王牌、送血哥','影丿战魂','幽冥战神','染忆″爷霸气','〃弑神√','王者丶剑啸','霸气╉恋酷',
				   '烽火丶傻瓜','王的风范','冷心为帝','紫月蓝风'
		];
		
		const nicknameMath = Math.ceil(Math.random()*103);
		const nickname = nickName[nicknameMath];
		var data = {
			avatar:avatar,//头像
			nickname:nickname,//昵称
			gender:0,//性别未知
			status:0,//状态正常
			mobile:tel,//手机号码
			mobile_confirmed:0,//手机号未验证
			register_env:{ //注册环境信息
				appid:systemInfo.appId,//appId
				uni_platform:systemInfo.uniPlatform,
				os_name:systemInfo.osName,
				app_name:systemInfo.appName,
				app_version:systemInfo.appVersion,
				app_version_code:systemInfo.appVersionCode
			},
			score:0,//积分
			register_date:new Date().getTime()
			
		}
		
		if(userinfo.affectedDocs == 0){
			var result = await db.collection('uni-id-users').add(data);
			var loginData = data;
			loginData._id = result.id;
		}else{
			updateData = {
				register_env:data.register_env
			};
			var result = await db.collection('uni-id-users').where({mobile:tel}).update(updateData);
			var loginData = userinfo.data[0];
		}
		return {
			code:0,
			message:'操作成功',
			result:result,
			data:loginData
		};
	}
	
}
